#ifndef BOX_HPP
#define BOX_HPP

#include "../Math.hpp"
#include "Shape.hpp"

namespace Geometry {

class Box : public Shape {
public:
  virtual Model::MeshRef CreateMesh(bool generateNormalTexCoords = false);

  Box(glm::vec3 origin, glm::vec3 s) : _o(origin), _w_h_z(s) {}

  Box() : _o(0.0f), _w_h_z(1.0f) {}

  void SetOrigin(glm::vec3 o) { _o = o; }
  glm::vec3 GetOrigin() const { return _o; }

  void SetScale(glm::vec3 s) { _w_h_z = s; }
  glm::vec3 GetScale() const { return _w_h_z; }

private:
  glm::vec3 _o;
  glm::vec3 _w_h_z;
};

} // namespace Geometry

#endif